DuckDB 回测引擎 因子/策略历史赚钱吗?
2025-08-22 ~ 2026-08-21 MACD 零轴下金叉(震荡指标) 242 交易日 · 前复权
21 笔
交易次数
33.3%
胜率
2.08
盈亏比
-9.5%
总收益

01策略说明

用户定义规则 · 五要素齐全(买入/卖出时机+仓位)· 执行口径标注
买入时机DIF 上穿 DEA(金叉)且 DIF < 0(零轴下方,超跌反转)当日收盘确认,次日开盘买入
买入仓位满仓(单标的 100%,初始资金 100 万)
卖出时机DIF 下穿 DEA(死叉)次日开盘卖出;或单日跌超 7% 止损;最长持有 15 个交易日
卖出仓位清仓(100%)
选股条件全市场 A 股,成交额 ≥1 亿(无人问津的小票不参与)
候选选择当日满足买入信号的全部股票中,选取「当日成交额最大」的 1 只(热度代理 [ASSUMED]);当日无候选则继续空仓等待
💡 策略本质:MACD 零轴下金叉 -9.5%,21 笔胜率仅 33.3%。零轴下方金叉被广泛视为超跌反转的第一信号,但实测显示:在趋势性下跌段,零轴下方的金叉大量是「下跌中继」而非「反转起点」,这与 RSI 超卖、60 日新低等左侧

02回测总览

模型输出 · [MODEL]
负收益 · 零轴下金叉失效 近 1 年 21 笔:胜率 33.3%、盈亏比 2.08、总收益 -9.5%、回撤 -46.8%——零轴下方金叉是超跌反弹逻辑,本样本期内未能兑现。
结论—— MACD 零轴下金叉 -9.5%,21 笔胜率仅 33.3%。零轴下方金叉被广泛视为超跌反转的第一信号,但实测显示:在趋势性下跌段,零轴下方的金叉大量是「下跌中继」而非「反转起点」,这与 RSI 超卖、60 日新低等左侧策略的失败模式完全一致。
数据含义—— 21 笔交易只有 7 笔盈利,平均盈利 +8.0%、平均亏损 -3.8%,盈亏比 2.08 尚可,但胜率过低导致期望为负。21 笔在 242 个交易日中相当稀疏——说明「零轴下金叉」信号本身稀缺,样本量小也放大了随机性。
失败模式—— 亏损集中在 2025-11~2026-01 与 2026-03~04 两段弱势期——零轴下金叉发出后价格继续下行,随后才出现真正的底部。这正是「左侧信号早于市场底部」的典型困境:信号方向对,但时点偏早,被随后的下跌打出止损。
横向对比—— 20 策略排名第 7(-9.5%),优于双均线金叉 -54.4%、均线多头回踩 -51.5%,说明「加零轴约束」确实优于裸金叉。但与同为金叉逻辑的 KDJ 低位金叉 +9.1% 相比,MACD 的信号更迟、更少,在本样本期内效率更低。
优化方向—— ①改为「零轴上金叉」(趋势跟随口径)对比测试,验证是否零轴约束方向搞反②增加 DIF 拐头向上 + 收盘站上 MA5 的双重确认③若坚持左侧逻辑,应配合严格仓位控制(半仓)而非满仓。
投资指导—— MACD 零轴下金叉在本样本期内不成立,不应作为独立买入依据。若要用 MACD,建议放在「零轴上金叉+趋势确认」的右侧框架里,而非作为超跌抄底信号使用。

03收益与回撤

策略净值 vs 沪深300 · 收盘口径
初始净值 1.0策略净值(前复权·满仓单标的)沪深300(归一化)0.90 (-9.5%)1.06 (+17.1%)
💡 近 1 年 21 笔:胜率 33.3%、盈亏比 2.08、总收益 -9.5%、回撤 -46.8%——零轴下方金叉是超跌反弹逻辑,本样本期内未能兑现。

04交易明细

21 笔 · 卖出日=信号触发日次日开盘成交 · 候选=选股日满足买入信号的股票数(均选成交额最大者)
#选股日买入日卖出日触发日股票买价卖价收益天数候选当前资金(¥)卖出原因
12025-08-262025-08-272025-09-052025-09-04圣邦股份 300661.SZ79.62371.141-10.68%732¥893,184连续亏损累计超10%
22025-09-082025-09-092025-09-222025-09-19双环传动 002472.SZ38.57846.675+20.96%9259¥1,080,400单日跌超7%止损
32025-09-232025-09-242025-10-212025-10-20三星电气 601567.SH23.26523.25-0.10%1354¥1,079,367MACD死叉
42025-10-222025-10-232025-11-032025-10-31寒武纪 688256.SH944.878895.254-5.28%7271¥1,022,355连续亏损累计超10%
52025-11-042025-11-052025-11-142025-11-13视觉中国 000681.SZ21.94521.275-3.08%750¥990,842MACD死叉
62025-11-172025-11-182025-12-102025-12-09英维克 002837.SZ56.14959.312+5.60%1699¥1,046,367持有15天到期
72025-12-152025-12-162026-01-092026-01-08中航光电 002179.SZ32.95238.299+16.20%16121¥1,215,853持有15天到期
82026-01-122026-01-132026-02-042026-02-03沐曦股份-U 688802.SH623.8505.01-19.07%1689¥983,954连续亏损累计超10%
92026-02-052026-02-062026-02-242026-02-13中国平安 601318.SH64.7163.636-1.69%695¥967,328MACD死叉
102026-02-252026-02-262026-03-102026-03-09工业富联 601138.SH56.74253.015-6.60%8262¥903,504MACD死叉
112026-03-112026-03-122026-04-032026-04-02中际旭创 300308.SZ556.591599.291+7.64%16221¥972,547持有15天到期
122026-04-072026-04-082026-04-302026-04-29海光信息 688041.SH225.996284.769+25.98%16301¥1,225,177持有15天到期
132026-05-062026-05-072026-05-182026-05-15洛阳钼业 603993.SH19.62117.895-8.82%7192¥1,117,068连续亏损累计超10%
142026-05-192026-05-202026-05-262026-05-25利欧股份 002131.SZ7.2336.298-12.96%497¥972,298MACD死叉
152026-05-272026-05-282026-06-022026-06-01光启技术 002625.SZ41.7538.533-7.73%350¥897,106MACD死叉
162026-06-032026-06-042026-06-242026-06-23XD紫金矿 601899.SH30.07426.677-11.32%1388¥795,514单日跌超7%止损
172026-06-252026-06-262026-07-072026-07-06润建股份 002929.SZ67.2864.224-4.57%754¥759,137单日跌超7%止损
182026-07-082026-07-092026-07-202026-07-17网宿科技 300017.SZ14.6113.75-5.92%796¥714,223单日跌超7%止损
192026-07-212026-07-222026-07-272026-07-24华电辽能 600396.SH12.9814.0+7.83%385¥770,134单日跌超7%止损
202026-07-282026-07-292026-07-312026-07-30杰瑞股份 002353.SZ136.56135.08-1.11%2330¥761,557单日跌超7%止损
212026-08-032026-08-042026-08-202026-08-19罗博特科 300757.SZ425.0505.11+18.82%12260¥904,877单日跌超7%止损
💡 21 笔交易只有 7 笔盈利,平均盈利 +8.0%、平均亏损 -3.8%,盈亏比 2.08 尚可,但胜率过低导致期望为负。21 笔在 242 个交易日中相当稀疏——说明「零轴下金叉」信号本身稀缺,样本量小也放大了随机性。

05卖出原因分布

全部平仓口径 · 共 21 笔
单日跌超7%止损(7 次)33%
MACD死叉(6 次)29%
连续亏损累计超10%(4 次)19%
持有15天到期(4 次)19%
💡 亏损集中在 2025-11~2026-01 与 2026-03~04 两段弱势期——零轴下金叉发出后价格继续下行,随后才出现真正的底部。这正是「左侧信号早于市场底部」的典型困境:信号方向对,但时点偏早,被随后的下跌打出止损。

0610 策略横向对比

同一引擎同一区间 · 按总收益排序 · ★=当前策略
排名策略交易胜率盈亏比总收益最大回撤年化
1强势股缩量回踩 MA20 趋势回踩3542.9%3.84+161.2%-31.9%+171.7%
2海龟唐奇安通道突破 趋势跟随1428.6%5.55+79.0%-43.2%+83.8%
3W底双底突破 形态反转2142.9%3.34+76.3%-23.1%+80.5%
4KDJ 低位金叉 震荡指标4238.1%1.95+9.1%-41.2%+9.5%
5RSI 超卖反转 超跌反转2458.3%0.76-1.7%-37.1%-1.8%
6涨停基因缩量回踩 打板低吸3633.3%2.20-3.1%-44.7%-3.2%
7MACD 零轴下金叉 ★ 震荡指标2133.3%2.08-9.5%-46.8%-9.9%
8均线粘合向上突破 形态突破3231.2%1.69-18.1%-48.2%-18.7%
9二连板打板接力 打板接力2626.9%3.10-18.8%-61.4%-20.2%
10120日新高强势追涨 动量追涨2744.4%1.19-19.7%-48.0%-20.4%
11向上跳空缺口放量 缺口突破5034.0%2.00-24.1%-55.1%-25.0%
12布林带突破 波动突破1921.1%3.29-27.1%-42.2%-28.1%
13强势股首阴低吸 趋势回踩4630.4%2.13-31.4%-61.4%-32.5%
14MA20 放量突破 趋势跟随2524.0%2.01-34.9%-39.6%-36.1%
15缩量回踩 MA5/MA10 趋势回踩3327.3%2.04-38.2%-69.0%-39.4%
16放量连续阳线接力 动量追涨3030.0%1.83-39.3%-63.0%-40.5%
17均线多头回踩 趋势回踩3834.2%1.06-51.5%-72.2%-52.9%
1860日新低超跌反弹 超跌反转3342.4%0.55-54.3%-56.7%-55.8%
19双均线金叉趋势跟随 趋势跟随1822.2%1.43-54.4%-61.7%-55.9%
20涨停次日低吸 打板低吸4637.0%1.02-66.3%-75.0%-67.8%
💡 20 策略排名第 7(-9.5%),优于双均线金叉 -54.4%、均线多头回踩 -51.5%,说明「加零轴约束」确实优于裸金叉。但与同为金叉逻辑的 KDJ 低位金叉 +9.1% 相比,MACD 的信号更迟、更少,在本样本期内效率更低。

07优化建议与风险

基于回测证据 · 模型输出

优化建议(按优先级)

①改为「零轴上金叉」(趋势跟①改为「零轴上金叉」(趋势跟随口径)对比测试,验证是否零轴约束方向搞反
②增加 DIF 拐头向上 +②增加 DIF 拐头向上 + 收盘站上 MA5 的双重确认
③若坚持左侧逻辑,应配合严格③若坚持左侧逻辑,应配合严格仓位控制(半仓)而非满仓。

风险提示

亏损集中在 2025-11~2026-01 与 2026-03~04 两段弱势期——零轴下金叉发出后价格继续下行,随后才出现真正的底部。这正是「左侧信号早于市场底部」的典型困境:信号方向对,但时点偏早,被随后的下跌打出止损。
满仓单标的 + 短样本期(242 交易日)——结论稳健性有限,须结合更长周期验证
单笔最大收益对总收益影响显著,需关注收益集中度(见 06 对比区提醒)
数据来源:同花顺金融数据(hithink-finance v0.1.5,本地 DuckDB v_daily_qfq 前复权日K + index history 沪深300 + symbol list 名称映射);回测区间 2025-08-22~2026-08-21(242 交易日);策略:MACD 零轴下金叉(震荡指标),五要素定义见 strategies.json;口径:涨停=前复权相邻日收益率(主板 ≥+9.8%、创业板/科创板 ≥+19.8%);RSI14 为 SMA 均值口径 [ASSUMED];布林=MA20±2σ(stddev_samp);唐奇安=前 20 日最高/前 10 日最低(不含当日);交易按开盘价成交、满仓单标的、含单边 0.03% 费率(印花税未含);当前资金=初始 100 万按每笔清仓收益滚动累计;总收益含期末未平仓浮动;卖出日=信号触发日(跌超/死叉/破位等)的下一交易日,按开盘价成交;候选=选股日满足买入信号的全部股票数,均选当日成交额最大者(热度代理 [ASSUMED])。回测结果为历史数据模拟 [MODEL],不代表未来表现。仅供研究参考,不构成个人投资建议。